package com.internetCafes.spms.web.project.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.internetCafes.spms.core.annotation.NoTentant;
import com.internetCafes.spms.core.annotation.TentantFilter;
import com.internetCafes.spms.web.project.entity.ProjectConfig;
import com.internetCafes.spms.web.project.entity.po.ProjectCertificatesPagingPO;
import com.internetCafes.spms.web.project.entity.po.ProjectInfoPO;
import com.internetCafes.spms.web.project.entity.po.ProjectPagingPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 项目信息管理表 Mapper 接口
 * </p>
 *
 * @author Zj
 * @since 2021-04-27
 */
@Mapper
public interface ProjectConfigMapper extends BaseMapper<ProjectConfig> {
    /**
     * 项目列表带人员信息
     *
     * @return 全部数据
     * @author Zj
     */
    @TentantFilter(tableAlias = "tei")
    List<ProjectPagingPO> listAllJoinEmployee();

    /**
     * 获取项目证书人员列表
     *
     * @param page      分页
     * @param projectId 项目id
     * @return 证书列表
     * @author Zj
     */
    @NoTentant
    Page<ProjectCertificatesPagingPO> pageCerificatesOfProject(Page page, @Param("projectId") Long projectId, @Param("ew") Wrapper queryWrapper);

    /**
     * 获取项目信息带有用户姓名
     *
     * @param id 项目id
     * @return 项目信息
     * @author Zj
     */
    ProjectInfoPO infoJoinEmployee(Long id);

    /**
     * 项目列表分页联查负责人信息
     *
     * @param page         分页信息
     * @param queryWrapper 条件
     * @return 分页数据
     * @author Zj
     */
    @TentantFilter(tableAlias = "tei")
    Page<ProjectPagingPO> pageJoinEmployee(Page page, @Param("ew") Wrapper queryWrapper);
}
